In many situations today, users interact with very large volumes of information as they perform tasks and complete work. The information may be spread across many different application services in many different forms. For example, a user may interact with documents, spreadsheets, presentations, contacts, and databases through any of a variety of applications, including productivity applications, email, file systems, and database applications. In addition, users interact with and exchange information over instant messaging conversations, online meetings, blogs, and other popular communication tools.
Many applications provide search tools with which users can retrieve specific items from large volumes of content. For example, most email clients provide a search tool for searching a user's mailbox for relevant emails. In another example, a file system interface can be used to search for files on a user's computer. Such content repositories are usually crawled continuously or periodically and indexed to facilitate more efficient searching. On a very large scale, Internet search engines attempt to crawl and index all or most of the content available on the web.
At the enterprise level, providing fast and reliable search services for a wide variety of content produced by a large set of users and applications has proven very challenging. But at the same time, enterprise users have become accustomed to the fast response times of local search tools and Internet-scale search tools and, in fact, have integrated many related search habits into their daily work. A variety of solutions have been developed that attempt to provide a similar experience across the enterprise space.
One enterprise search solution provides a search interface through which a query may be entered. The query is then distributed to multiple enterprise applications for the applications to conduct application-specific searches in their domain. The results can be aggregated and surfaced to a user. In another example, searches may be personalized such that a working context or other information specific to a user is considered during the search, thereby narrowing the results to something more relevant to the user. In addition, graph search has become an increasingly popular tool for searching large amounts of information.